﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	///<summary>
	///(Упр)
	///</summary>
	[DataContract]
	public enum ВидыОперацийРасходныйОрдер
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"f4e4306f-ac45-448a-9ea6-db1524502549\", \"Представление\":\"ВозвратПоПриходномуОрдеру\"}")]
		ВозвратПоПриходномуОрдеру = 0,//возврат по приходному ордеру
		[EnumMember(Value = "{\"Ссылка\":\"54f31bee-0953-4b81-a0a2-086bd69fc18d\", \"Представление\":\"РасходПоНакладной\"}")]
		РасходПоНакладной = 1,//расход по накладной
		[EnumMember(Value = "{\"Ссылка\":\"5398fbf7-8477-4201-9056-f1ea13f00d2d\", \"Представление\":\"ВозвратПоставщику\"}")]
		ВозвратПоставщику = 2,//возврат поставщику
		[EnumMember(Value = "{\"Ссылка\":\"c6ea163c-4489-4c7f-a09a-6362c618a45f\", \"Представление\":\"Перемещение\"}")]
		Перемещение = 3,
	///<summary>
	///(Общ)
	///</summary>
		[EnumMember(Value = "{\"Ссылка\":\"fbe51f3e-a721-415e-96a5-9dbf8fb8f2c5\", \"Представление\":\"ВПереработку\"}")]
		ВПереработку = 4,//передача материалов переработчику
	///<summary>
	///(Общ)
	///</summary>
		[EnumMember(Value = "{\"Ссылка\":\"ed50e804-a080-49a1-94e4-0b6b605bab21\", \"Представление\":\"ИзПереработки\"}")]
		ИзПереработки = 5,//передача продукции заказчику
		[EnumMember(Value = "{\"Ссылка\":\"2d5f58d7-a12a-461f-8cf5-223985498030\", \"Представление\":\"НеОпределен\"}")]
		НеОпределен = 6,//не определен
	}
	public static partial class ВидыОперацийРасходныйОрдер_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid ВозвратПоПриходномуОрдеру = new Guid("15dba69e-5024-4925-448a-ac45f4e4306f");//возврат по приходному ордеру
		public static readonly Guid РасходПоНакладной = new Guid("6b08a2a0-9fd6-8dc1-4b81-095354f31bee");//расход по накладной
		public static readonly Guid ВозвратПоставщику = new Guid("eaf15690-f013-2d0d-4201-84775398fbf7");//возврат поставщику
		public static readonly Guid Перемещение = new Guid("62639aa0-18c6-5fa4-4c7f-4489c6ea163c");
		///<summary>
		///(Общ)
		///</summary>
		public static readonly Guid ВПереработку = new Guid("bf9da596-b88f-c5f2-415e-a721fbe51f3e");//передача материалов переработчику
		///<summary>
		///(Общ)
		///</summary>
		public static readonly Guid ИзПереработки = new Guid("6b0be494-5b60-21ab-49a1-a080ed50e804");//передача продукции заказчику
		public static readonly Guid НеОпределен = new Guid("3922f58c-4985-3080-461f-a12a2d5f58d7");//не определен
		public static ВидыОперацийРасходныйОрдер Получить(this ВидыОперацийРасходныйОрдер Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static ВидыОперацийРасходныйОрдер Получить(this ВидыОперацийРасходныйОрдер Значение, Guid Ссылка)
		{
			if(Ссылка == ВозвратПоПриходномуОрдеру)
			{
				return ВидыОперацийРасходныйОрдер.ВозвратПоПриходномуОрдеру;
			}
			else if(Ссылка == РасходПоНакладной)
			{
				return ВидыОперацийРасходныйОрдер.РасходПоНакладной;
			}
			else if(Ссылка == ВозвратПоставщику)
			{
				return ВидыОперацийРасходныйОрдер.ВозвратПоставщику;
			}
			else if(Ссылка == Перемещение)
			{
				return ВидыОперацийРасходныйОрдер.Перемещение;
			}
			else if(Ссылка == ВПереработку)
			{
				return ВидыОперацийРасходныйОрдер.ВПереработку;
			}
			else if(Ссылка == ИзПереработки)
			{
				return ВидыОперацийРасходныйОрдер.ИзПереработки;
			}
			else if(Ссылка == НеОпределен)
			{
				return ВидыОперацийРасходныйОрдер.НеОпределен;
			}
			return ВидыОперацийРасходныйОрдер.ПустаяСсылка;
		}
		public static byte[] Ключ(this ВидыОперацийРасходныйОрдер Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this ВидыОперацийРасходныйОрдер Значение)
		{
			switch (Значение)
			{
				case ВидыОперацийРасходныйОрдер.ВозвратПоПриходномуОрдеру: return ВозвратПоПриходномуОрдеру;
				case ВидыОперацийРасходныйОрдер.РасходПоНакладной: return РасходПоНакладной;
				case ВидыОперацийРасходныйОрдер.ВозвратПоставщику: return ВозвратПоставщику;
				case ВидыОперацийРасходныйОрдер.Перемещение: return Перемещение;
				case ВидыОперацийРасходныйОрдер.ВПереработку: return ВПереработку;
				case ВидыОперацийРасходныйОрдер.ИзПереработки: return ИзПереработки;
				case ВидыОперацийРасходныйОрдер.НеОпределен: return НеОпределен;
			}
			return Guid.Empty;
		}
	}
}